package com.shujia.day17;

public class Code02ClassObjectCreate {
    public static void main(String[] args) throws ClassNotFoundException {
        /*
            类对象创建的三种方式
         */

        // 通过Object类提供的getClass方式获取类对象
//        Animal cat = new Cat();
//        Class<Animal> aClass = cat.getClass();
        Animal animal = new Animal();
        Class<? extends Animal> aClass = animal.getClass();// 注意：通过Cat对象获取到的是Cat类对象

        // 2.通过类名.class获取到类对象
        Class<Animal> animalClass = Animal.class;


        // 3.反射

        // forName需要传入创建类对象对应类的路径
        Class<?> aClass1 = Class.forName("com.shujia.day17.Animal");

        System.out.println(aClass == animalClass);
        System.out.println(aClass == aClass1);

        // 通过类路径的方式在内存中可以找到对应的存储信息，再将其引用返回映射给 aClass1对象

    }
}
